home *** CD-ROM | disk | FTP | other *** search
/ 10,000 Great Games / 10,000 Great Games.iso / Product / 66 / data1.cab / Source_Files / Src / UpdateOnscreen.cpp < prev    next >
C/C++ Source or Header  |  2000-01-16  |  1KB  |  45 lines

  1. #include "stdafx.h"
  2.  
  3. static void update_onscreen_list(cGameObject **above_screen, cGameObject **onscreen, cGameObject **below_screen)
  4. {
  5.     cGameObject *n, *s;
  6.     
  7.       // Put on screen stuff in below/above list
  8.     
  9.     for (s = *onscreen; s != 0; s = n)        
  10.     {
  11.         n = (cGameObject *)s->next;
  12.     
  13.         s->update_list();
  14.     }
  15.                 
  16.     // Put above screen stuff in the on screen list when it comes on screen.
  17.     // The list needs to be sorted by sort_y2(). 
  18.         
  19.     for (s = *above_screen; s != 0 && !s->above_screen(); s = n)
  20.     {
  21.         n = (cGameObject *)s->next;
  22.  
  23.         s->update_list();
  24.     }
  25.  
  26.     // Put below screen stuff in the on screen list when it comes on screen.
  27.     // The list needs to be sorted by rsort_y1(). 
  28.         
  29.     for (s = *below_screen; s != 0 && !s->below_screen(); s = n)
  30.     {
  31.         n = (cGameObject *)s->next;
  32.  
  33.         s->update_list();
  34.     }
  35. }
  36.  
  37. void update_onscreen_list()
  38. {
  39.     // Move objects on/off screen as they go
  40.  
  41.     for (int i = 0; objtypes[i].type != 0; i++)
  42.         if (!objtypes[i].list_occured_earlier)
  43.             update_onscreen_list(objtypes[i].abovescreen, objtypes[i].onscreen, objtypes[i].belowscreen);
  44. }
  45.